home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / io / DataInputStream.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  3.5 KB  |  267 lines

  1. package java.io;
  2.  
  3. public class DataInputStream extends FilterInputStream implements DataInput {
  4.    private byte[] bytearr = new byte[80];
  5.    private char[] chararr = new char[80];
  6.    private byte[] readBuffer = new byte[8];
  7.    private char[] lineBuffer;
  8.  
  9.    public DataInputStream(InputStream var1) {
  10.       super(var1);
  11.    }
  12.  
  13.    public final int read(byte[] var1) throws IOException {
  14.       return this.in.read(var1, 0, var1.length);
  15.    }
  16.  
  17.    public final int read(byte[] var1, int var2, int var3) throws IOException {
  18.       return this.in.read(var1, var2, var3);
  19.    }
  20.  
  21.    public final void readFully(byte[] var1) throws IOException {
  22.       this.readFully(var1, 0, var1.length);
  23.    }
  24.  
  25.    public final void readFully(byte[] var1, int var2, int var3) throws IOException {
  26.       if (var3 < 0) {
  27.          throw new IndexOutOfBoundsException();
  28.       } else {
  29.          int var5;
  30.          for(int var4 = 0; var4 < var3; var4 += var5) {
  31.             var5 = this.in.read(var1, var2 + var4, var3 - var4);
  32.             if (var5 < 0) {
  33.                throw new EOFException();
  34.             }
  35.          }
  36.  
  37.       }
  38.    }
  39.  
  40.    public final int skipBytes(int var1) throws IOException {
  41.       int var2 = 0;
  42.  
  43.       int var4;
  44.       for(var4 = 0; var2 < var1 && (var4 = (int)this.in.skip((long)(var1 - var2))) > 0; var2 += var4) {
  45.       }
  46.  
  47.       return var2;
  48.    }
  49.  
  50.    public final boolean readBoolean() throws IOException {
  51.       int var1 = this.in.read();
  52.       if (var1 < 0) {
  53.          throw new EOFException();
  54.       } else {
  55.          return var1 != 0;
  56.       }
  57.    }
  58.  
  59.    public final byte readByte() throws IOException {
  60.       int var1 = this.in.read();
  61.       if (var1 < 0) {
  62.          throw new EOFException();
  63.       } else {
  64.          return (byte)var1;
  65.       }
  66.    }
  67.  
  68.    public final int readUnsignedByte() throws IOException {
  69.       int var1 = this.in.read();
  70.       if (var1 < 0) {
  71.          throw new EOFException();
  72.       } else {
  73.          return var1;
  74.       }
  75.    }
  76.  
  77.    public final short readShort() throws IOException {
  78.       int var1 = this.in.read();
  79.       int var2 = this.in.read();
  80.       if ((var1 | var2) < 0) {
  81.          throw new EOFException();
  82.       } else {
  83.          return (short)((var1 << 8) + (var2 << 0));
  84.       }
  85.    }
  86.  
  87.    public final int readUnsignedShort() throws IOException {
  88.       int var1 = this.in.read();
  89.       int var2 = this.in.read();
  90.       if ((var1 | var2) < 0) {
  91.          throw new EOFException();
  92.       } else {
  93.          return (var1 << 8) + (var2 << 0);
  94.       }
  95.    }
  96.  
  97.    public final char readChar() throws IOException {
  98.       int var1 = this.in.read();
  99.       int var2 = this.in.read();
  100.       if ((var1 | var2) < 0) {
  101.          throw new EOFException();
  102.       } else {
  103.          return (char)((var1 << 8) + (var2 << 0));
  104.       }
  105.    }
  106.  
  107.    public final int readInt() throws IOException {
  108.       int var1 = this.in.read();
  109.       int var2 = this.in.read();
  110.       int var3 = this.in.read();
  111.       int var4 = this.in.read();
  112.       if ((var1 | var2 | var3 | var4) < 0) {
  113.          throw new EOFException();
  114.       } else {
  115.          return (var1 << 24) + (var2 << 16) + (var3 << 8) + (var4 << 0);
  116.       }
  117.    }
  118.  
  119.    public final long readLong() throws IOException {
  120.       this.readFully(this.readBuffer, 0, 8);
  121.       return ((long)this.readBuffer[0] << 56) + ((long)(this.readBuffer[1] & 255) << 48) + ((long)(this.readBuffer[2] & 255) << 40) + ((long)(this.readBuffer[3] & 255) << 32) + ((long)(this.readBuffer[4] & 255) << 24) + (long)((this.readBuffer[5] & 255) << 16) + (long)((this.readBuffer[6] & 255) << 8) + (long)((this.readBuffer[7] & 255) << 0);
  122.    }
  123.  
  124.    public final float readFloat() throws IOException {
  125.       return Float.intBitsToFloat(this.readInt());
  126.    }
  127.  
  128.    public final double readDouble() throws IOException {
  129.       return Double.longBitsToDouble(this.readLong());
  130.    }
  131.  
  132.    /** @deprecated */
  133.    @Deprecated
  134.    public final String readLine() throws IOException {
  135.       char[] var1 = this.lineBuffer;
  136.       if (var1 == null) {
  137.          var1 = this.lineBuffer = new char[128];
  138.       }
  139.  
  140.       int var2 = var1.length;
  141.       int var3 = 0;
  142.  
  143.       while(true) {
  144.          int var4;
  145.          switch (var4 = this.in.read()) {
  146.             case 13:
  147.                int var5 = this.in.read();
  148.                if (var5 != 10 && var5 != -1) {
  149.                   if (!(this.in instanceof PushbackInputStream)) {
  150.                      this.in = new PushbackInputStream(this.in);
  151.                   }
  152.  
  153.                   ((PushbackInputStream)this.in).unread(var5);
  154.                }
  155.             case -1:
  156.             case 10:
  157.                if (var4 == -1 && var3 == 0) {
  158.                   return null;
  159.                }
  160.  
  161.                return String.copyValueOf(var1, 0, var3);
  162.          }
  163.  
  164.          --var2;
  165.          if (var2 < 0) {
  166.             var1 = new char[var3 + 128];
  167.             var2 = var1.length - var3 - 1;
  168.             System.arraycopy(this.lineBuffer, 0, var1, 0, var3);
  169.             this.lineBuffer = var1;
  170.          }
  171.  
  172.          var1[var3++] = (char)var4;
  173.       }
  174.    }
  175.  
  176.    public final String readUTF() throws IOException {
  177.       return readUTF(this);
  178.    }
  179.  
  180.    public static final String readUTF(DataInput var0) throws IOException {
  181.       int var1 = var0.readUnsignedShort();
  182.       Object var2 = null;
  183.       Object var3 = null;
  184.       byte[] var9;
  185.       char[] var10;
  186.       if (var0 instanceof DataInputStream) {
  187.          DataInputStream var4 = (DataInputStream)var0;
  188.          if (var4.bytearr.length < var1) {
  189.             var4.bytearr = new byte[var1 * 2];
  190.             var4.chararr = new char[var1 * 2];
  191.          }
  192.  
  193.          var10 = var4.chararr;
  194.          var9 = var4.bytearr;
  195.       } else {
  196.          var9 = new byte[var1];
  197.          var10 = new char[var1];
  198.       }
  199.  
  200.       int var7 = 0;
  201.       int var8 = 0;
  202.       var0.readFully(var9, 0, var1);
  203.  
  204.       while(var7 < var1) {
  205.          int var11 = var9[var7] & 255;
  206.          if (var11 > 127) {
  207.             break;
  208.          }
  209.  
  210.          ++var7;
  211.          var10[var8++] = (char)var11;
  212.       }
  213.  
  214.       while(var7 < var1) {
  215.          int var12 = var9[var7] & 255;
  216.          switch (var12 >> 4) {
  217.             case 0:
  218.             case 1:
  219.             case 2:
  220.             case 3:
  221.             case 4:
  222.             case 5:
  223.             case 6:
  224.             case 7:
  225.                ++var7;
  226.                var10[var8++] = (char)var12;
  227.                break;
  228.             case 8:
  229.             case 9:
  230.             case 10:
  231.             case 11:
  232.             default:
  233.                throw new UTFDataFormatException("malformed input around byte " + var7);
  234.             case 12:
  235.             case 13:
  236.                var7 += 2;
  237.                if (var7 > var1) {
  238.                   throw new UTFDataFormatException("malformed input: partial character at end");
  239.                }
  240.  
  241.                byte var13 = var9[var7 - 1];
  242.                if ((var13 & 192) != 128) {
  243.                   throw new UTFDataFormatException("malformed input around byte " + var7);
  244.                }
  245.  
  246.                var10[var8++] = (char)((var12 & 31) << 6 | var13 & 63);
  247.                break;
  248.             case 14:
  249.                var7 += 3;
  250.                if (var7 > var1) {
  251.                   throw new UTFDataFormatException("malformed input: partial character at end");
  252.                }
  253.  
  254.                byte var5 = var9[var7 - 2];
  255.                byte var6 = var9[var7 - 1];
  256.                if ((var5 & 192) != 128 || (var6 & 192) != 128) {
  257.                   throw new UTFDataFormatException("malformed input around byte " + (var7 - 1));
  258.                }
  259.  
  260.                var10[var8++] = (char)((var12 & 15) << 12 | (var5 & 63) << 6 | (var6 & 63) << 0);
  261.          }
  262.       }
  263.  
  264.       return new String(var10, 0, var8);
  265.    }
  266. }
  267.